package com.normalClasses.eye;
import java.util.ArrayList;
//定义泛型类
import java.util.List;
public class Queue_message_handler <T>{
private List<T> items;//定义存储对象
public Queue_message_handler(){//构造方法
    this.items=new ArrayList<T>();
}
 public synchronized T pop() throws Exception{
	 //当队列长度超过规定值时，不能再次接收请求，必须等待处理
	 while(items.size()==0){
		 try {
			 //等待，直到有新的请求进来
			 this.wait();
		 }
		 catch (Exception e) {
			// TODO: handle exception
			//将异常抛出，交给上级处理 
			 throw e;
		}
	 }
	 //拿出第一个元素
	 T result=this.items.get(0);
	 //删除第一个元素
	 this.items.remove(0);
	 //通知请求可以继续加入
	 this.notify();
	 //返回取出的元素
	 return result;	 
 }
 public synchronized void push(T member) throws Exception{
	 //当队列长度超过规定值时，不能再次接收请求，必须等待处理
	 while(items.size()==100){
		 try {
			 //等待，直到处理者处理完
			 this.wait();
		 }
		 catch (Exception e) {
			// TODO: handle exception
			//将异常抛出，交给上级处理 
			 throw e;
		}
	 }
	 //加入元素此元素
	 this.items.add(member);
	 //通知处理者继续处理
	 this.notify();	 
 }
}
